﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Web;
using System.Web.Mvc;
using DBTramite.BussinesEntities;
using DBTramite.BussinesLogic;
using Microsoft.Practices.Unity;

namespace DBTramite.WebMVC4.Controllers
{
    public class DocumentoController : Controller
    {
        [Dependency]
        public I_TDocumentoService TDocumentoService { get; set; }

        [Dependency]
        public IT_UnidadService UnidadService { get; set; }

        [Dependency]
        public IDependenciaService DependenciaService { get; set; }

        [Dependency]
        public IPersonaService PersonaService { get; set; }
        //
        // GET: /Documento/

        public ActionResult Index()
        {
            var lista = TDocumentoService.GetT_DocumentosByCriterio("");
            return View(lista);
        }

        [HttpPost]
        public ActionResult Index(string criterio = "")
        {
            var lista = TDocumentoService.GetT_DocumentosByCriterio(criterio);
            return View(lista);
        }
        //
        // GET: /Documento/Details/5

        public ActionResult Details(int id)
        {
            return View();
        }

        //
        // GET: /Documento/Create

        public ActionResult Create()
        {
            var unidades = UnidadService.GetFromT_UnidadByCriterio("");

            ViewData["T_Unidadenvio[0].codunidad"] = new SelectList(unidades, "codunidad", "descripcion");

            var newDocumento = new T_Documento() { nroexpediente = TDocumentoService.GetNextNroDocumento(DateTime.Now) };

            return View(newDocumento);
        }

        //
        // POST: /Documento/Create

        [HttpPost]
        public ActionResult Create(T_Documento documento)
        {
            TDocumentoService.AddT_Documento(documento);

            return RedirectToAction("Index");
        }

        public JsonResult Listar()
        {
            var query = from n in  DependenciaService.GetFromAllDependenciasByNombre()
                select n;
            return Json(query, JsonRequestBehavior.AllowGet);
        }

        public JsonResult Procedencia()
        {
            var query = from p in PersonaService.GetAllPersona()
                        select p;
            return Json(query, JsonRequestBehavior.AllowGet);
        }

        //
        // POST: /Documento/Create

        //[HttpPost]
        //public ActionResult Listar(T_Documento documento)
        //{
        //    try
        //    {
        //        TDocumentoService.AddT_Documento(documento);

        //        return RedirectToAction("Index");
        //    }
        //    catch
        //    {
        //        return View();
        //    }
        //}

        //
        // GET: /Documento/Edit/5

        public ActionResult Edit(int id)
        {
            return View();
        }

        //
        // POST: /Documento/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Documento/Delete/5

        public ActionResult Delete(int id)
        {
            return View();
        }

        //
        // POST: /Documento/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}
